package cn.com.cym.gamezao.entity.xmu;

import cn.com.cym.gamezao.base.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.lang.NonNull;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.io.Serializable;
import java.time.LocalDate;

/**
 * 厦门大学附属翔安医院在校课程表
 */
@Setter
@Getter
@NoArgsConstructor
@Table(name = "x_schedule")
@Entity
@ApiModel(description = "课程")
public class Schedule extends BaseEntity implements Serializable {
    private static final long serialVersionUID = 5655640804252443313L;


    /**
     * 学年
     */
    @ApiModelProperty(value = "学年",dataType = "String")
    @NonNull
    @Column(length = 20)
    private String schoolYear;

    /**
     * 学期
     */
    @ApiModelProperty(value = "学期",dataType = "Integer")
    @NonNull
    private Integer term;

    /**
     * 周次
     */
    @ApiModelProperty(value = "周次",dataType = "Integer")
    @NonNull
    private Integer cycle;

    /**
     * 上课日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "日期",dataType = "LocalDate")
    @NonNull
    private LocalDate classDate;

    /**
     * 星期
     */
    @ApiModelProperty(value = "周次",dataType = "String")
    @NonNull
    private String week;

    /**
     * 节次
     */
    @ApiModelProperty(value = "节次",dataType = "String")
    @NonNull
    private String section;


    /**
     * 授课地点
     */
    @ApiModelProperty(value = "授课地点",dataType = "String")
    @NonNull
    @Column(length = 300)
    private String address;

    /**
     * 课程名称
     */
    @ApiModelProperty(value = "课程名称",dataType = "String")
    @NonNull
    @Column(length = 100)
    private String courseName;

    /**
     * 授课内容
     */
    @ApiModelProperty(value = "授课内容",dataType = "String")
    @NonNull
    @Column(length = 200)
    private String teachContent;

    /**
     * 授课老师
     */
    @ApiModelProperty(value = "授课老师",dataType = "String")
    @NonNull
    @Column(length = 30)
    private String teacher;

    /**
     * 授课老师电话
     */
    @ApiModelProperty(value = "授课老师电话",dataType = "String")
    @NonNull
    @Column(length = 11)
    private String teachTel;

    /**
     * 授课对象
     */
    @ApiModelProperty(value = "授课对象",dataType = "String")
    @NonNull
    @Column(length = 60)
    private String teachObject;

    /**
     * 听课人数
     */
    @ApiModelProperty(value = "听课人数",dataType = "Integer")
    @NonNull
    private Integer stuNums;

    /**
     * 课程秘书
     */
    @ApiModelProperty(value = "课程秘书",dataType = "String")
    @NonNull
    @Column(length = 30)
    private String courseSecretary;

    /**
     * 课程秘书电话
     */
    @ApiModelProperty(value = "课程秘书电话",dataType = "String")
    @NonNull
    @Column(length = 11)
    private String courseSecretaryTel;

    /**
     * 授课老师
     */
    @ApiModelProperty(value = "教务秘书",dataType = "String")
    @NonNull
    @Column(length = 30)
    private String academicSecretary;

    /**
     * 授课老师电话
     */
    @ApiModelProperty(value = "教务秘书电话",dataType = "String")
    @NonNull
    @Column(length = 11)
    private String academicSecretaryTel;

    @ApiModelProperty(value = "发送状态",dataType = "Boolean")
    private Boolean sendStatus = false;

}
